import { Observable } from "./Observable";
// subject可以有多个观察者
// observable也可以有多个观察者
// 都可以多播放，但是subject它所有的观察者得到数据是同一份，而observable不 同的观察者得到的数据不一样
export class Subject extends Observable {
  observers = [];
  // 订阅观察者
  _subscribe(subscriber) {
    this.observers.push(subscriber);
  }
  // 向观察者发送数据，值给许多观察者。
  next(value) {
    for (const subscriber of this.observers) {
      subscriber.next(value);
    }
  }
  complete() {
    for (const subscriber of this.observers) {
      subscriber.complete();
    }
  }
}
